package cn.le.transfer;

import java.util.Enumeration;
import java.util.Vector;

public class Cloning {

    public static void main(String[] args) {
        Vector v = new Vector();
        for (int i = 0; i < 10; i++) {
            v.addElement(new Int(i));
        }
        System.out.println("v: "+v);

        //老的Vector和克隆的Vector都包含相同的对象，
        //这种复制是“浅层复制”，它不能把里对象包含在里面的对象也进行复制。
        //实际对象包含除了这个“表面”外，还包括句柄指向的所有对象，以及那个对象又
        //指向的其他对象，由此类推，这便是“对象网”或“对象关系网”，能复制这张关系网叫做
        //“全面辅助”或“深层复制”
        Vector v2 = (Vector) v.clone();

        for(Enumeration e = v2.elements(); e.hasMoreElements();)
        {
            ((Int) e.nextElement()).increment();
        }
        System.out.println("v: " + v);
    }

}

class Int{

    private int i;

    public Int(int ii)
    {
        i = ii;
    }
    public void increment()
    {
        i++;
    }
    public String toString()
    {
        return Integer.toString(i);
    }
}